package com.wyix;

import com.wyix.config.SpringConfig;
import com.wyix.service.impl.BookServiceImpl;
import com.wyix.service.impl.OrderService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author wangdx
 * @since 2025/8/6
 */
public class AopAppTest {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookServiceImpl bookService = context.getBean(BookServiceImpl.class);
        OrderService orderService = context.getBean(OrderService.class);

        // 测试1：无参数方法
        bookService.getBookName();

        // 测试2：带参数方法（正常）
        bookService.updateBookPrice(101L, 89.9);

        // 测试3：带参数方法（异常）
        try {
            bookService.updateBookPrice(102L, -10);
        } catch (Exception e) { /* 已被AOP捕获 */ }

        // 测试4：自定义注解方法
        bookService.addComment("user_001", "非常实用的技术书！");

        // 测试5：返回对象的方法
        orderService.createOrder(1L, 101L);
    }
}
